package com.neusoft.classch7;

import java.text.DecimalFormat;
import java.text.Format;

/*-
 * indent
 * 3、设计三个类，分别如下：（知识点：抽象类及抽象方法） [必做题]
 * 3.1 设计Shape表示图形类，有面积属性area、周长属性per，颜色属性color，
 * 有两个构造方法（一个是默认的、一个是为颜色赋值的），
 * 还有3个抽象方法，分别是：getArea计算面积、getPer计算周长、showAll输出所有信息，
 * 还有一个求颜色的方法getColor。
 * 
 * 3.2 设计 2个子类：
 * 3.2.1  Rectangle表示矩形类，增加两个属性，Width表示长度、height表示宽度，
 * 重写getPer、getArea和showAll三个方法，
 * 另外又增加一个构造方法（一个是默认的、一个是为高度、宽度、颜色赋值的）。
 * 
 * 3.2.2  Circle表示圆类，增加1个属性，radius表示半径，
 * 重写getPer、getArea和showAll三个方法，
 * 另外又增加两个构造方法（为半径、颜色赋值的）。
 * 3.3  在main方法中，声明创建每个子类的对象，并调用2个子类的showAll方法。
 *
 */
public class Circle extends Shape {

	//半径
	private double radius;
	
	@Override
	public double calculateArea() {
		//a 为pi， b为 半径
		double cArea = Math.PI*radius*radius;
		return cArea;
	}

	@Override
	public double calculatePer() {
		//a为pi b为半径
		double cPer = 2* Math.PI* radius;
		return cPer;
	}

	@Override
	public void showAll() {
		//格式化输出
		DecimalFormat dFm  = new DecimalFormat("##.##");
		

		//输出信息
		System.out.println("半径为"+dFm.format(radius)+"的圆形周长为"+dFm.format(calculatePer())+",面积为"+dFm.format(calculateArea()));
	}

	public Circle(double radius) {
		super();
		this.radius = radius;
	}

	public double getRadius() {
		return radius;
	}

	public void setRadius(double radius) {
		this.radius = radius;
	}

	public Circle() {
		super();
	}
	
	

}
